package top.tangyh.lamp.care.vo.result;

import cn.hutool.core.map.MapUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import top.tangyh.basic.base.entity.Entity;
import top.tangyh.basic.interfaces.echo.EchoVO;
import java.io.Serializable;

/**
 * <p>
 * 表单查询方法返回值VO
 * 观察项配置主表
 * </p>
 *
 * @author zqb
 * @date 2024-07-26 11:20:21
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@Builder
@Schema(description = "观察项配置")
public class BObsvCfgResultVO extends Entity<Long> implements Serializable, EchoVO {

    private static final long serialVersionUID = 1L;

    private Map<String, Object> echoMap = MapUtil.newHashMap();

    @Schema(description = "系统主键")
    private Long id;

    /**
    * 标识,或即观察标识，说明：非复合体为生命特征指标编码如spo2
    */
    @Schema(description = "标识,或即观察标识，说明：非复合体为生命特征指标编码如spo2")
    private String obsvCode;
    /**
    * 观察项名称
    */
    @Schema(description = "观察项名称")
    private String obsvName;
    /**
    * 数据类型，说明：取数据字典name值，值为 integer,float,struct,enum,boolean,string
    */
    @Schema(description = "数据类型，说明：取数据字典name值，值为 integer,float,struct,enum,boolean,string")
    private String dataType;
    /**
    * 观察项类型，说明：取数据字典name值
    */
    @Schema(description = "观察项类型，说明：取数据字典name值")
    private String obsvType;
    /**
    * 状态 0-否，1-是,默认1
    */
    @Schema(description = "状态 0-否，1-是,默认1")
    private Integer isEnable;
    /**
    * 排序号，说明：权重
    */
    @Schema(description = "排序号，说明：权重")
    private Integer orderNo;
    /**
    * 是否逻辑删除 0-否，1-是，默认是0
    */
    @Schema(description = "是否逻辑删除 0-否，1-是，默认是0")
    private Integer isDeleted;
    /**
    * 是否可见 0-否，1-是，默认是1
    */
    @Schema(description = "是否可见 0-否，1-是，默认是1")
    private Integer isVisible;
    /**
    * 数据是否来自设备 0-否，1-是，默认是1
    */
    @Schema(description = "数据是否来自设备 0-否，1-是，默认是1")
    private Integer isDev;

    /**
    * 标识单位，如血压的单位为：mmHg
    */
    @Schema(description = "标识单位，如血压的单位为：mmHg")
    private String propUnit;
    /**
    * 参考范围下限
    */
    @Schema(description = "参考范围下限")
    private BigDecimal refLower;
    /**
    * 参考范围上限
    */
    @Schema(description = "参考范围上限")
    private BigDecimal refUpper;
    /**
    * 删除时间
    */
    @Schema(description = "删除时间")
    private LocalDateTime deleteTime;
    /**
    * 排序用时间，记录的是实时修改时间
    */
    @Schema(description = "排序用时间，记录的是实时修改时间")
    private Long sortTime;
    /**
    * 默认值，说明：仅限枚举
    */
    @Schema(description = "默认值，说明：仅限枚举")
    private String defaultValue;



}
